#!/bin/bash
#-----SomeBody------
fun_swap() {
    clear
		echo -e "\E[44;1;37m            GERENCIAR MEMORIA VIRTUAL             \E[0m"
        echo ""
		echo -e "\033[1;31mO swap é uma área de troca usada para aumentar a quantidade de memória RAM \ndo sistema(RECOMENTADO PARA MAQUINAS COM POUCA MEMORIA RAM).\033[0m"
        echo -e "\033[1;31mAntes de ativar, saiba a quantidade de armazenamento que sua maquina possui, \nsempre deixe armazenamento de sobra para evitar travamentos.\033[0m"
        echo ""
		echo -e "\033[1;31m[\033[1;36m1\033[1;31m] \033[1;37m• \033[1;33mATIVAR SWAP / ALTERAR VALOR DO SWAP \033[0m"
		echo -e "\033[1;31m[\033[1;36m2\033[1;31m] \033[1;37m• \033[1;33mDESATIVAR SWAP\033[0m"
		echo -e "\033[1;31m[\033[1;36m0\033[1;31m] \033[1;37m• \033[1;33mVOLTAR\033[0m"
		echo ""
		echo -ne "\033[1;32mO QUE DESEJA FAZER \033[1;33m?\033[1;37m "
		read resposta
		if [[ "$resposta" = '1' ]]; then
            clear
			echo -e "\E[44;1;37m            MEMORIA VIRTUAL              \E[0m"
			echo ""
			echo -ne "\033[1;32mQUANTOS GIGAS DESEJA ULTILIZAR \033[1;33m?\033[1;37m: "
			read gigas
            [[ -z "$gigas" ]] && {
					echo ""
					echo -e "\033[1;31mGigas invalida!"
					sleep 2
					clear
					menu
				}
            echo ""
			echo -e "\033[1;32mINICIANDO MEMORIA VIRTUAL \033[1;31m$gigas GB\033[1;33m"
			echo ""
            swapoff -a
            rm -rf /bin/ram.img > /dev/null 2>&1
            fallocate -l ${gigas}G /bin/ram.img > /dev/null 2>&1
            chmod 600 /bin/ram.img > /dev/null 2>&1
            mkswap /bin/ram.img > /dev/null 2>&1
            swapon /bin/ram.img > /dev/null 2>&1
            echo 50  > /proc/sys/vm/swappiness
            echo '/bin/ram.img none swap sw 0 0' | sudo tee -a /etc/fstab > /dev/null 2>&1
            echo ""
			echo -e "\033[1;32mMEMORIA VIRTUAL ATIVADO COM SUCESSO\033[1;33m"
            sleep 2
			fun_swap
        elif [[ "$resposta" = '2' ]]; then
            clear
			echo -e "\E[44;1;37m            DESATIVANDO MEMORIA VIRTUAL              \E[0m"
            swapoff -a
            rm -rf /bin/ram.img > /dev/null 2>&1
            echo ""
			echo -e "\033[1;32mMEMORIA VIRTUAL DESATIVADO COM SUCESSO!\033[1;33m"
			sleep 2
			fun_swap
        elif [[ "$resposta" = '0' ]]; then
			echo ""
			echo -e "\033[1;31mRetornando...\033[0m"
			sleep 1
			menu
		else
			echo ""
			echo -e "\033[1;31mOpcao invalida !\033[0m"
			sleep 1
			fun_swap
		fi 
}
fun_swap